#include "mywidget.h"
#include "mybutton.h"
#include <QDebug>
#include <QPushButton>  //控件pushbutton的头文件


//命名规范
//类名：首字母大写，单词单词之间首字母大写
//函数名，变量名首字母小写，单词单词之间首字母大写


//注释
//快速范围注释 ： 选中后ctrl + /
//运行 ： ctrl + r
//编译 ： ctrl + b
//字体缩放 ： ctrl + 鼠标滚轮
//查找 ： ctrl + f
//整行移动 ： 选中后ctrl + shift + ↑或者↓
//帮助文档 ： 选中后按F1
//自动对齐 ： ctrl + i
//同名的.h和.cpp之间进行切换 ： F4

//帮助文档 ： 第一种按F1 第二种点左边帮助 第三种 E:\qt5.11.2\5.11.2\msvc2015_64\bin下的assistant.exe文件

MyWidget::MyWidget(QWidget *parent)  //声明时*parent的默认值为0这里不再写
    : QWidget(parent)
{
    //创建一个按钮
    QPushButton *btn = new QPushButton;
    //btn->show(); //show以顶层方式弹出窗口控件

    //让button依附在myWidget的窗口中setParent（）函数
    btn->setParent(this); //设置父亲，this指向当前对象(即主窗口)的指针，同时btn就进入了对象树。

    //设置文本setText（）函数
    btn->setText("first");

    //创建第二个按钮，控件大小创建主窗口
    QPushButton * btn2 = new QPushButton("second",this); //直接将上面两步合并

    //移动控件
    btn2->move(100,100);

    //按钮指定大小
    btn->resize(50,50);

    //重置窗口大小
    resize(600,400);

    //设置固定的窗口大小;
    setFixedSize(600,400);

    //设置窗口标题
    setWindowTitle("FirstWindow");

    MyButton * mbtn = new MyButton;
    mbtn->setParent(this);
    mbtn->setText("mybutton");
    mbtn->move(200,0);

    //需求 点击我的按钮 关闭窗口
    //connect（信号的发送者，发送的信号，信号的接收者，信号的处理（槽））
    //信号槽的优点，松散耦合，信号发送端 和 接收端 本身是没有关联的，通过connect链接 将两端耦合在一起。
    //conncet（参数1 信号的发送者 参数2 发送的信号（函数的地址） 参数3 信号的接收者 参数四 处理的槽函数）
    connect(mbtn,  &MyButton::clicked, this, &MyButton::close);


}

MyWidget::~MyWidget()
{
    qDebug() << "end";//虽然先输出了这里的内容，但此时还没有析构mywidget，输出之后会找mywidget的子类，mbtn会先析构，之后mywidget才析构
}
